// 全局配置根路径
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'

// 全局配置请求头
// 请求拦截
axios.interceptors.request.use(
  function (config) {
    //  打印参数
    // console.log(config)

    // 判断路径中，是否包含/api/ 或者 /my/
    // >=0 !=1 >-1 ,都可使用
    if (config.url.indexOf('/my/') != -1) {
      // 这样赋值，不会影响原来的头信息设置
      // 所有的头信息设置，不要使用对象赋值，要使用 属性，不会出现覆盖
      //   axios.defaults.headers.common['Authorization'] = localStorage.getItem('token')
      config.headers.Authorization = localStorage.getItem('token')
    }

    // 修改完毕的config需要返回
    return config
  },
  function (error) {
    //   将来讲解 Promise 对象，详细讲解
    return Promise.reject(error)
  }
)

// 响应拦截器 - 登录拦截，未登录或token失效会导致服务器返回：身份认证失败
//  此种情况下，我们需要把页面强行跳转登录页
axios.interceptors.response.use(
  function (response) {
    //   输出响应结果
    // console.log(response)

    if (response.data.message == '身份认证失败！') {
      // 跳转到登录页面，销毁token
      location.href = '/login.html'
      localStorage.removeItem('token')
    }

    // 返回response
    return response
  },
  function (error) {
    return Promise.reject(error)
  }
)

// 格式化日期方法
function formatDate (time) {
  let dt = new Date(time)
  let y = dt.getFullYear()
  let m = padZero(dt.getMonth() + 1) // 从0开始算的,所以需要+1
  let d = padZero(dt.getDate()) // 天是getDate()

  let hh = padZero(dt.getHours())
  let mm = padZero(dt.getMinutes())
  let ss = padZero(dt.getSeconds())

  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}

// 定义一个补零函数
function padZero (n) {
  return n < 10 ? '0' + n : n
}
